package APPyanghuanyu.reflect;

import APPyanghuanyu.Person.Person;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class ReflectDome4 {
    public static void main(String[] args) throws Exception {
        //1.获取Person的Class对象
        Class personClass = Person.class;
        //获取成员方法
        //getMethod()获取空参方法 eat()
        Method eat_method = personClass.getMethod("eat");
        //方法对象的作用：  执行方法    .invoke()
        //public Object invoke(Object obj, Object... args)
        Person p = new Person();
        //执行方法
        eat_method.invoke(p);

        System.out.println("------------------");

        //获取有参方法
        Method eat_method2 = personClass.getMethod("eat", String.class);
        eat_method2.invoke(p, "饭");

        System.out.println("---------------------");

        //获取所有public方法
        Method[] methods = personClass.getMethods();
        for (Method method : methods) {
            System.out.println(method);
            //  method.getName()获取方法名
            String name = method.getName();
            System.out.println(name);
        }



        //获取类名  .getClass
        String classname = personClass.getName();
        System.out.println(classname);

    }
}
